package com.open.rbac.model.dto.id;

import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import com.open.center.common.databind.annotation.IdCardDesensitize;
import com.open.center.common.databind.annotation.PhoneDesensitize;
import com.open.center.model.dto.BaseDto;
import com.open.rbac.constant.GenderType;
import com.open.rbac.constant.IdType;


@Schema(name = "IdentityDto", description = "Id")
@Getter
@Setter
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
public class IdentityDto extends BaseDto {

    @Schema(description = "姓名")
    private String name;

    @Schema(description = "性别")
    private GenderType gender;

    @Schema(description = "民族")
    private String ethnicity;

    @Schema(description = "证件类型")
    private IdType idType;

    @Schema(description = "证件号码")
    private String idNumber;

    @Schema(description = "证件号码明文")
    @IdCardDesensitize
    private String idNumberText;

    @Schema(description = "手机")
    private String phone;

    @Schema(description = "手机明文")
    @PhoneDesensitize
    private String phoneText;

    @Schema(description = "职业")
    private String job;

    @Schema(description = "工作单位")
    private String workplace;

    @Schema(description = "户籍地")
    private String nativePlace;

    @Schema(description = "现住址")
    private String address;

    @Schema(description = "备注")
    private String remark;

    private List<IdentityRelDto> identityRels;

    private List<IdentityOrganizationRelDto> organizationRels;
}
